package com.shamyang.java8.c05;

/**
 * 如果一个接口中只有一个抽象方法,这个接口可称为是函数式接口
 * 1、父类和接口默认方法冲突:如果一个接口中定义了一个默认方法,类A实现了该接口,并且类A继承了类B,类B中也有一个和接口相同的方法(方法名和参数均相同),则会采用
 * 类B的方法,接口中的方法会被忽略.
 *
 * 2、多个父接口方法冲突:如果类A实现了两个接口B、C,接口B有一个默认方法和接口C中的抽象方法相同,则这个时候类A必须去覆盖该方法,否则编译报错.
 */
@FunctionalInterface
public interface MyInterface {

    String say();

    /**
     * 接口中可定义默认方法
     * @return
     */
    default String testDefault(){
        return "interface default methond";
    }

    /**
     * 接口中可定义静态方法
     * @return
     */
    static String testStatic(){
        return "interface static methond";
    }
}
